package com.cnc.common.web.upload;

import com.cnc.common.web.upload.info.FileInfo;
import org.apache.commons.fileupload.FileUploadException;

import javax.servlet.http.HttpServletRequest;

/**
 * 作者：Teacher_Huang
 * 创建时间：2017-09-28.
 * 版本：1.0
 */
public interface FileUpload<T extends FileInfo> {


    /**
     * 设置上传文件的最大值
     * @param sizeMax 文件大小最大值
     */
    public void setSizeMax(long sizeMax);

    /**
     * 获取文件的最大值 -1 表示不限定大小
     * @return
     */
    public long getSizeMax();

    /**
     * 获取当前解析使用的编码
     * @return 编码
     */
    public String getEncoding();

    /**
     * 设置解析文件信息的编码
     * @param encoding 编码
     */
    public void setEncoding(String encoding);

    /**
     * 获取过滤器
     * @return
     */
    public UploadFileFilter getFilter();

    /**
     * 设置文件过滤器，不符合过滤器规则的将不被上传
     * @param filter
     */
    public void setFilter(UploadFileFilter filter);

    /**
     * 从request中解析文件
     * @param request request对象
     */
    public T parseUploadFile(HttpServletRequest request) throws FileUploadException;
}

